// loading框设置局部刷新，且所有请求完成后关闭loading框
import { ElLoading } from 'element-plus';

/**
 * 20220830优化对话框代码
 * 练
 * 对对话框增加计数，保证加载框多次使用时的正常显示。
 * @param content
 */
export default function useLoadingDialog(content = '努力加载中...') {
  let loading: any; // 加载框对象
  let loadingCount = 0; // 加载框数量，用于在使用多次使用的时候能够正常关闭
  // 打开加载
  function startLoading() {
    // console.log('加载开始', loading);
    // console.log('加载开始', loadingCount);
    if (loadingCount === 0) {
      // 只有第一次才初始化，防止多次加载
      loading = ElLoading.service({
        lock: true,
        // spinner: 'refresh',
        // fullscreen: true,
        customClass: 'create-isLoading', // 自定义加载样式，写在app.vue里面
        background: 'rgba(0, 0, 0, 0.7)',
        text: content
      });
      loadingCount += 1;
    }
  }
  // 关闭加载
  function endLoading() {
    // console.log('加载结束', loading);
    // console.log('加载结束', loadingCount);
    if (loadingCount >= 1) {
      loadingCount -= 1;
    }
    if (loadingCount === 0) {
      if (loading != null) {
        loading.close();
      }
    }
  }
  return {
    startLoading,
    endLoading
  };
}
